"""
FuXi Weather: A Python package for weather and climate data processing.

This package provides utility functions for working with weather and climate data,
including data loading, processing, normalization, and analysis functions.
Developed for use with FuXi weather models and climate research.
"""

__version__ = "0.1.0"
__author__ = "Fan Jiang"
__email__ = "fanjiang@example.com"

# Import main utility functions from weather_util module
from .weather_util import (
    # Constants
    KELVIN,
    GRAVITY,
    EARTH_RADIUS_M,
    LEVELS_6,
    LEVELS_13,
    LEVELS_20,
    LEVELS_37,
    LEVELS_30,
    SHORT_NAME_MAPPING,
    EXPECTED_DIMS,
    UNIT_SCALE,
    STATIONS_NORM,
    HUADONG_AREA,
    ZHEJIANG_AREA,
    
    # Core utility functions
    chunk,
    update_dims,
    update_coords,
    update_units,
    update_coords_zarr,
    
    # Data loading functions
    load_grib,
    load_zarr,
    load_dataarray,
    
    # Data transformation functions
    level_to_channel,
    channel_to_level,
    normalize,
    unnormalize,
    
    # Spatial operations
    resize_dataarray,
    spatial_interp,
    crop_dataarray,
    area_mean,
    
    # Temporal operations
    aggregate,
    cumsum_to_accum,
    filter_complete_hours,
    resample_dataarray,
    process_weekly_mean,
    weekly_mean,
    
    # Climate analysis functions
    get_doy,
    climate_mean,
    climate_std,
    sel_like,
    tercile_edge,
    compute_climate,
    compute_trend,
    compute_edge,
    compute_prob,
    compute_quintile_clim,
    get_anomaly,
    
    # Statistical functions
    calc_mean_std,
    calc_diff_std,
    
    # I/O functions
    save_nc,
    save_zarr,
    save_by_year,
    merge_nc,
    merge_member,
    
    # Utility functions
    print_dataarray,
    print_grib,
    hasnan,
    is_complete_year,
    is_pressure,
    is_accum,
    is_ocean,
    is_water,
    land_to_nan,
    align_coords,
    nearest_index,
    select_data,
    compute_level_weight,
    handle_dataset,
    
    # Signal processing
    remove_annual_cycle,
    detrend_single,
    get_trend,
)

# Define what gets imported with "from fuxi_weather import *"
__all__ = [
    # Constants
    "KELVIN", "GRAVITY", "EARTH_RADIUS_M",
    "LEVELS_6", "LEVELS_13", "LEVELS_20", "LEVELS_37", "LEVELS_30",
    "SHORT_NAME_MAPPING", "EXPECTED_DIMS", "UNIT_SCALE", "STATIONS_NORM",
    "HUADONG_AREA", "ZHEJIANG_AREA",
    
    # Core functions
    "chunk", "update_dims", "update_coords", "update_units", "update_coords_zarr",
    
    # Data loading
    "load_grib", "load_zarr", "load_dataarray",
    
    # Data transformation
    "level_to_channel", "channel_to_level", "normalize", "unnormalize",
    
    # Spatial operations
    "resize_dataarray", "spatial_interp", "crop_dataarray", "area_mean",
    
    # Temporal operations
    "aggregate", "cumsum_to_accum", "filter_complete_hours", "resample_dataarray",
    "process_weekly_mean", "weekly_mean",
    
    # Climate analysis
    "get_doy", "climate_mean", "climate_std", "sel_like", "tercile_edge",
    "compute_climate", "compute_trend", "compute_edge", "compute_prob",
    "compute_quintile_clim", "get_anomaly",
    
    # Statistics
    "calc_mean_std", "calc_diff_std",
    
    # I/O
    "save_nc", "save_zarr", "save_by_year", "merge_nc", "merge_member",
    
    # Utilities
    "print_dataarray", "print_grib", "hasnan", "is_complete_year",
    "is_pressure", "is_accum", "is_ocean", "is_water", "land_to_nan",
    "align_coords", "nearest_index", "select_data", "compute_level_weight",
    "handle_dataset",
    
    # Signal processing
    "remove_annual_cycle", "detrend_single", "get_trend",
] 